package org.quartz.watch.dc;

import java.util.List;

import javax.faces.event.ActionEvent;

import com.icesoft.faces.component.datapaginator.DataPaginator;

public interface QWDialogController<R extends QWControlledRecord<?>> {

	public static final int MAX_RECORD_COUNT = 10000;

	public abstract void clean();

	public abstract int getRecordCount();

	public abstract List<R> getRecords();

	public abstract boolean navigationActionPerformed();

	public abstract boolean isAlwaysTrue();

	public abstract void setAlwaysTrue(boolean neverFalse);

	public abstract R getSelectedRecord();

	public abstract void setSelectedRecord(R selectedRecord);

	public abstract boolean isSkipDeleteWarning();

	public abstract void setSkipDeleteWarning(boolean skipDeleteWarning);

	public abstract int getPageStart();

	public abstract int getPageSize();

	public abstract void setPageSizeMax();

	public abstract int getMaxPages();

	public abstract DataPaginator getPaginator();

	public abstract void setPaginator(DataPaginator dp);

	public abstract void resetStartPage();

	public abstract void paginationActionPerformed(ActionEvent ae);

	public abstract void changePageSizeActionPerformed(ActionEvent ae);

	public abstract void maxPageSizeActionPerformed(ActionEvent ae);

	public abstract int getFirstRow();

	public abstract void cancelActionPerformed(ActionEvent ae);

	public abstract void askDeleteRecordActionPerformed(ActionEvent ae);

	public abstract void removeRecordActionPerformed(ActionEvent ae);

	public abstract String getDeleteWarning();

	public abstract List<R> getSelectedRecords();

	public abstract void setSelectedRecords(List<R> selectedRecords);

	public abstract void dispose();

}